﻿select * from AccountInfo  --个人信息
select * from BankCard  --银行卡信息
select * from CardStateChange  --银行卡状态更改表
select * from CardTransfer  --转账表
select * from CardExchange  --交易记录
--1. 为赵云此人进行开户开卡操作，赵云身份证：420107199904054233
insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime)
values('420107199904054233','13554785965','赵云',GETDATE())
declare @AccountId int
set @AccountId=@@IDENTITY
insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardState)
values('6225125478544588',@AccountId,'123456',0,1)
--2. 需要求出张飞的银行卡卡号和余额，张飞身份证：420107199602034138  （1.使用连接查询，2.使用变量）
select CardNo,CardMoney from BankCard
join AccountInfo a on a.AccountId= BankCard.AccountId
where a.AccountCode='420107199602034138 '

declare @a varchar(20)
select @a=AccountId from AccountInfo where AccountCode='420107199602034138'

select CardNo,CardMoney from BankCard where BankCard.AccountId=@a
--3.某用户银行卡号为“6225547854125656”，该用户执行取钱操作，取钱5000元，余额充足则进行取钱操作，并提示"取钱成功"，否则提示“余额不足”。
declare @a int
select @a=Cardmoney  from BankCard where CardNo='6225547854125656'
if(@a>=5000)
begin
	print '取钱成功'
end
else
begin
	print '余额不足'
end
--4.查询银行卡信息，将银行卡状态1,2,3,4分别转换为汉字“正常,挂失,冻结,注销”，并且根据银行卡余额显示银行卡等级 30万以下为“普通用户”,30万及以上为"VIP用户"，  
select CardNo,AccountCode,Cardmoney,
case
when CardMoney >300000 then 'vip用户'
else '普通用户'
end as 等级 ,
case
 when CardState = 1 then  '正常' 
 when CardState = 2 then  '挂失' 
 when CardState = 3 then '冻结' 
 when CardState = 4 then '注销'
 end as 状态 
 from BankCard 
 join AccountInfo a on a.AccountId=BankCard.AccountId


----显示列分别为卡号，身份证，姓名，余额，用户等级，银行卡状态。
--​5.循环打印1-10。
declare @a int =1

while(@a<=10)
begin 
	print @a
	  set @a=@a+1
end
--​6.打印99乘法表
 declare @a int  